package info.itloser.learnkotlindemo.ui.simple

import android.os.Bundle
import android.view.View
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import info.itloser.learnkotlindemo.R
import info.itloser.learnkotlindemo.databinding.ActivityBasicViewBinding

/**
 * 说明： 基本控件 如 TextView Button 等的使用
 * 作者： itloser.info
 * 日期： 2021/9/14 16:22
 * 备注： 采用 ViewBinding 来实现快速 findViewById()
 * https://developer.android.google.cn/topic/libraries/view-binding
 */
class BasicViewActivity : AppCompatActivity(), View.OnClickListener {

    //稍后初始化
    private lateinit var binding: ActivityBasicViewBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        /*
        绑定视图 https://developer.android.com/topic/libraries/view-binding
        步骤1：调用生成的绑定类中包含的静态 inflate() 方法。此操作会创建该绑定类的实例以供 Activity 使用。
        步骤2：通过调用 getRoot() 方法获取对根视图的引用。
        步骤3：将根视图传递到setContentView() 使其成为屏幕上的活动视图。
        */
        binding = ActivityBasicViewBinding.inflate(layoutInflater)
        setContentView(binding.root)

        //初始化视图
        initView()

    }


    /**
     * 初始化视图
     */
    private fun initView() {

        //直接赋值
        binding.tvIsTv.text = getString(R.string.basic_view_act_0)

        //点击事件 写法1
        binding.tvIsTv.setOnClickListener {
            Toast.makeText(this, "你点击了这个文本! ", Toast.LENGTH_LONG).show()
        }

        //点击事件 写法2
        binding.btnIsBtn.setOnClickListener(this)
        binding.ivIsIv.setOnClickListener(this)
        binding.pbIsPb.setOnClickListener(this)
        binding.pbIsHor.setOnClickListener(this)

    }

    override fun onClick(v: View?) {
        when (v?.id) {
            R.id.btn_is_btn -> {
                //Toast
                Toast.makeText(this, "你点击了这个按钮! ", Toast.LENGTH_LONG).show()
            }
            R.id.iv_is_iv -> {
                //替换图片
                binding.ivIsIv.setImageResource(R.drawable.ic_boluo)
            }
            R.id.pb_is_pb -> {
                //隐藏控件
                binding.pbIsPb.visibility = View.INVISIBLE
            }
            R.id.pb_is_hor -> {
                //修改进度
                binding.pbIsHor.progress = 40
            }

        }

    }


}